package com.example.demo.PO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Major {
    private int 学制;
    private int 毕业学分要求;
    private 学分构成 学分构成;
    private List<String> 专业准入;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 学分构成 {
        private 通识通修 通识通修;
        private 专业核心课程 专业核心课程;
        private 毕业论文或设计 毕业论文或设计;
        private 选修 选修;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 通识通修 {
        private String 总数;
        private 通修课程 通修课程;
        private 文化素质类通识课程 文化素质类通识课程;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 通修课程 {
        private int 总数;
        private List<String> 课程列表;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 文化素质类通识课程 {
        private int 总数;
        private int 科学之光;
        private int 经典悦读或DIY;
        private int 美育;
        private int 劳育;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 专业核心课程 {
        private int 总数;
        private List<String> 课程列表;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 毕业论文或设计 {
        private int 总数;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 选修 {
        private 多元发展课程 多元发展课程;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 多元发展课程 {
        private int 总数;
        private 专业方向选修课程模块 专业方向选修课程模块;
        private 专业任选课课程 专业任选课课程;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 专业方向选修课程模块 {
        private int 总数;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class 专业任选课课程 {
        private int 总数;
    }
}